package cate.game.play.buff.h;

import cate.game.play.buff.BuffHandler;
import cate.game.play.config.PlayCfgArgs;
import cate.game.play.proce.action.ctx.TimeActionCtx;
import cate.game.play.proce.move.MoveCtx;

/**
 * 每用一次“xx技能”，“yy技能”系数+5%，最高40%
 */
public class 行动提升系数BH extends BuffHandler {

	private String 行动技能标签;

	private String 提升技能标签;

	private double 系数;

	private double 最大系数;

	//行动技能标签=？？提升技能标签=??&系数=500&最大系数=4000
	@Override
	public void parse(String code) {
		PlayCfgArgs args = new PlayCfgArgs(code);
		行动技能标签 = args.get("行动技能标签");
		提升技能标签 = args.get("提升技能标签");
		系数 = args.getDouble("系数", 0d);
		最大系数 = args.getDouble("最大系数", 0d);
	}

	private double coeff;

	@Override
	public void beforeOwnerMove(MoveCtx move, TimeActionCtx action) {
		if (move.getSkill().cfg.containTag(提升技能标签)) {
			if (coeff > 0) {
				move.param.addHpCfgByCoeff(coeff);
			}
		}
		if (move.getSkill().cfg.containTag(行动技能标签)) {
			if (coeff < 最大系数) {
				coeff = Math.min(coeff + 系数, 最大系数);
			}
		}
	}
}
